#include "onewrite.h"

unsigned char onewrite_inti(void)
{
	unsigned char i, j,dq = 1;
	DQ = 1;
	DQ = 0;
	i = 6;j = 211;	//延时500us
	do
	{
		while (--j);
	} while (--i);
	DQ = 1;
	i = 1;j = 176;	//延时60us
	do
	{
		while (--j);
	} while (--i);
	dq = DQ;
	i = 5;j = 168;
	do
	{
		while (--j);
	} while (--i);
	return dq;
}

void write_bit(unsigned char Bit)
{
	unsigned char i, j;
	DQ = 0;
	_nop_();
	_nop_();
	i = 27;
	while (--i);//延时10us
	DQ = Bit;
	i = 1;j = 161;
	do
	{
		while (--j);
	} while (--i);
	DQ = 1;
}

unsigned char read_bit(void)
{
	unsigned char Bit;
	unsigned char i,j;
	DQ = 0;
	_nop_();
	_nop_();
	i = 12;
	while (--i);	//5us
	DQ = 1;
	_nop_();
	_nop_();
	i = 21;
	while (--i);	//8us
	Bit = DQ;
	i = 1;j = 137;	//47us
	do
	{
		while (--j);
	} while (--i);
	return Bit;
}

void write_byte(unsigned char byte)
{
	unsigned char i = 0;
	for(i = 0;i<8;i++)
	{
		write_bit(byte&(0x01<<i));
			_nop_();
	}
}

unsigned char read_byte(void)
{
	unsigned char w = 0x00;
	unsigned char i = 0;
	for(i = 0;i<8;i++)
	{
		if(read_bit()){w|=(0x01<<i);}
			_nop_();
	}
	return w;
}
